import Vue from "vue";
import App from "./App.vue";

Vue.config.productionTip = false;
new Vue({
  render: h => h(App),
  /* 
      我们要赶在子组件的生命周期开始之前，把$bus放在Vue的原型对象上
      有三个生命周期可以选择 beforeCreate created beforeMount
  */

  beforeCreate() {
    // 初始化事件总线
    Vue.prototype.$bus = this;
  }


}).$mount("#app");
/*
  不能把$bus的定义1写在vm的后边，因为vm内的组件中的mounted生命周期函数压迫用这个$bus
  如果$bus放在了最后边，那么vm组件在用$bus的时候，这句话还没有执行
  这句话执行的时候，vm已经走完了生命周期，代表着内部所有的组件也走完了生命周期
  也就是说内部的组件在mounted中无法访问$bus
*/
// Vue.prototype.C = vm;